Various embodiments described herein relate to computer systems, processes (methods) and computer program products and more particularly to computer systems, processes and program products that embody a Java Virtual Machine (JVM).
Java is a general-purpose, class-based, object-oriented computer programming language that is designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere”, so that a program that runs on one platform does not need to be recompiled to run on another platform. Java applications are typically compiled to bytecode that can run on any JVM regardless of computer architecture. Java is one of the most popular programming languages currently in use, particularly for client-server Web applications.
A JVM is a virtual machine that can execute Java bytecode. JVMs generally are computer programs which execute certain other programs, namely those containing Java bytecode instructions. JVMs are generally implemented to run on an existing operating system but can also be implemented to run directly on hardware. A JVM provides a runtime environment in which Java bytecode can be executed. A JVM is generally distributed along with a Java class library that implements a Java application programming interface. JVMs are available for many hardware and software platforms.
Although the JVM was primarily aimed at running compiled Java programs, many other programming languages can now run on top of it. For example, the “Python” programming language can run on a JVM as “Jython”; the “Rexx” programming language can run on a JVM as “NetRexx”; and the “Ruby” programming language can run on a JVM as “JRuby”. Other programming languages such as “Fantom”, and “Scala” may be designed expressly for the JVM. These programming languages may be embodied by Java programs that implement their own programming language specifications on top of the JVM.